#include <stdio.h>
#include <pthread.h>
#include <unistd.h>

// 线程任务函数(栈空间)
void *func(void *arg) // 子线程
{
	printf("子线程：%lu\n", pthread_self());
	printf("主进程：%d\n", getpid());

	int j=0;
	while(1)
	{
		printf("第%d次打印world\n", j);
		sleep(2);
		j++;
	}
}

// 主线程
int main(int argc, char const *argv[])
{
	int i=0;
	printf("主线程：%lu\n", pthread_self());
	printf("主进程：%d\n", getpid());

	// 创建线程
	pthread_t tid;
	pthread_create(&tid, NULL, func, NULL);

	while(1)
	{
		printf("第%d次打印hello\n", i);
		sleep(1);
		i++;
		if(i==5)
		{
			pthread_cancel(tid); // 取消子线程tid
		}
	}
	
	
	return 0;
}
